QED Version 1.0 Preliminary Docs 9/2/90 Copyright 1988-1990 by Darren M. Greenwald All rights reserved Pull-down menus ===================================================================== INTRODUCTION ===================================================================== Most of QED's features are available from the pull-down menus. Some of QED's more advanced features are only available from the command mode, and require the command mode, and macro documentation to take full advantage of these other features. Most of QED's menu items also have an equivalent key press which can be used instead of the mouse. Equivalent key press combinations are listed in the pull-down menus, so the menus can be used as a reference. The following documentation describes each of the items in the pull-down menus along with the key press equivalent when applicable. Note also that some menu items have three periods (...) indicating that selecting this item will bring up a requester. Menu items with sub-menus attached are preceeded by a character which looks like '>>'. ===================================================================== THE PROJECT MENU ===================================================================== NEW RIGHT AMIGA N --- ------------- Open a new text editing window. See "appendix.txt" for extensive details on NEW windows. OPEN... RIGHT AMIGA O ------- ------------- Open an existing file, replacing the contents of a text editing window with the contents of the file. If the contents of the window's text editing buffer has been changed, then the user is first prompted with a requester. A file requester is presented allowing the user to select a path, and file name. The file is read into memory where it can be edited, and ultimately saved again. This operation could fail for a number of reasons such as not enough memory, read error, etc. If an error occurs, the user is notified via a message displayed in the window's title bar. LOAD... RIGHT AMIGA L ------- ------------- Load an existing file. Effectively inserts the contents of an existing file into the window's text editing buffer at the cursor position. A file requester is presented allowing the user to select a path, and file name. The file is read into memory where it can be edited, and ultimately saved again. This operation could fail for a number of reasons such as not enough memory, read error, etc. If an error occurs, the user is notified via a message displayed in the window's title bar. SAVE RIGHT AMIGA W ---- ------------- Save the contents of a window's text editing buffer to a file. The window must already have a file name associated with it for this operation to succeed, and the contents of the window's text editing buffer must have changed. Errors might also include file write errors. In all cases errors are reported via a message displayed in the window's title bar. SAVE AS... RIGHT AMIGA A ---------- ------------- Similar to the SAVE command above, however a requester is presented so that you can enter a file name to save your work as. Once named, you can then use the SAVE command to save any other changes made to the file. Of special note: SAVE AS can also be used to save a marked block, or column of text if a block/column has been marked. A requester is still presented, however the name entered is not remembered. PRINT... RIGHT AMIGA P -------- ------------- Used to print a marked block, column, or the entire contents of a window's text editing buffer. In all cases a requester is presented verifying that you want to print. This command can be selected again to cancel a print operation in progress (assuming that all data has not already been copied to an intermediate print buffer). Text is printed using the PRT: file which routes the text to the printer.device, and from there to the serial, or parallel port. Printer.device escape sequences within the text are also handled by the printer.device. Printing is done as a background task. An intermediate copy is made of the text to be printed first, so this command could fail in low memory situations. The data is stored in a ram: disk file as ram:qprint. After the file has been printed the ram: disk file is deleted. This file will also be deleted if you abort the print operation, or if the print operation fails. Failure may be due to a printer which is off-line, or because you do not have the printer.device, parallel.device, and/or serial.device in your DEVS: directory. If you abort the print operation by selecting this command again while the text is being printed, the print operation is canceled within the next 1-100 characters being printed. A requester is presented asking if you want to cancel the current print job. Only one program can use the printer at a time, and you cannot cancel a print operation started from another task. If you QUIT the program during printing, QED will hang around in the background until printing is done. INFO RIGHT AMIGA ` ---- ------------- Displays information about the contents of a window's text editing buffer (size in number of bytes, total number of lines, and possibly "Modified" if any changes have been made). ABOUT ----- Brings up a requester displaying some information about QED. QUIT RIGHT AMIGA Q ---- ------------- This command may bring up a requester if any changes have been made to the window's text editing buffer. This command closes a window opened with the NEW command, and may exit the program if this is the last window being closed. Note that you can press RIGHT AMIGA W followed by RIGHT AMIGA Q in succession to save, and quit. ===================================================================== EDIT ===================================================================== CUT RIGHT AMIGA X --- ------------- Copy, and delete a block, or column of text. The block/column is first copied to the clipboard.device in simple IFF TEXT format. Note that it is possible to use QED's own private clipboard mechanism if desired; see command mode documentation for more details. COPY RIGHT AMIGA C ---- ------------- Copy a block, or column of text. See CUT above for more details. ERASE... RIGHT AMIGA E -------- ------------- Erase the entire contents of a window's text editing buffer. If possible, QED tries to free up as memory as it can at this time. This command can also be used to erase a marked block, or column of text. In all cases a requester is presented first since erased text cannot be recovered. BLOCK MARK RIGHT AMIGA B ---------- ------------- Toggle mark block mode on/off. Mark block mode is transparent; that is to say you can continue editing text like usual, however typically you turn on this mode when you want to highlight a section of text to cut, copy, save, etc. Block mark mode can also be toggled on/off by double-clicking the mouse over a row/column position. Note that when you are marking text from a position to a later position, the cursor is not included in the block. This turns out to be useful since it is easier to mark whole lines of text, and works out well when moving the cursor to the next/previous word. If you are marking from a position to an earlier position in a file, the original cursor position is not included in the block either for the same reasons. See the appendix for more information on marking blocks, and columns of text. BLOCK INSERT RIGHT AMIGA I ------------ ------------- Insert a block of text from the clipboard.device which was previously cut, or copied. The block of text is inserted at the cursor position. Note that it is possible to use QED's own private clipboard mechanism if desired; see command mode documentation for more details. IMPORTANT - See the appendix for more information on how QED handles the clipboard. COLUMN MARK RIGHT AMIGA D ----------- ------------- Toggle column marking on/off. The cursor is always included within the column being marked. For the sake of speed it is often desireable to first mark a block, and then select this menu item. You can toggle back, and forth between block/column mode by pressing RIGHT AMIGA B, and RIGHT AMIGA D. See the appendix for more information on marking blocks, and columns of text. COLUMN INSERT RIGHT AMIGA V ------------- ------------- Insert a column of text from the clipboard.device which was previously cut, or copied. The upper left edge of the column of text is inserted starting at the cursor position. Note that it is possible to use QED's own private clipboard mechanism if desired; see command mode documentation for more details. IMPORTANT - See the appendix for more information on how QED handles the clipboard. KILL LINE RIGHT AMIGA K --------- ------------- Deletes the line on which the cursor resides if the line is less then 256 characters long. The line is copied to a private buffer, and can be restored with the UN-Kill command. KILL TO EOL RIGHT AMIGA Y ----------- ------------- Deletes characters from the cursor position to the end of line if the line is less then 256 characters long. The line is copied to a private buffer, and can be restored with the UN-Kill command. ERASE WORD RIGHT AMIGA J ---------- ------------- Erases text from the cursor position to beginning of the next word. The entire word is only erased if the cursor is placed on the first character of the word. This allows you the ability to quickly erase from the first incorrect letter in a word so that the rest of the word can be retyped. UN-KILL RIGHT AMIGA U ------- ------------- Restores text deleted with the KILL LINE, or KILL TO EOL commands. The text is reinserted at the cursor position. This command is also useful when you want to move a single line. First KILL the line, then move the cursor, and finally UN-KILL the line. ===================================================================== CURSOR ===================================================================== PREV PAGE SHIFT CURSOR --------- UP ------------ Move the cursor up one window page. NEXT PAGE SHIFT CURSOR --------- DOWN ------------ Move the cursor down one window page. PREV WORD SHIFT CURSOR --------- LEFT ------------ Move the cursor back one word. NEXT WORD SHIFT CURSOR --------- RIGHT ------------ Move the cursor forward one word. TOP LINE ALT CURSOR -------- UP ---------- Move the cursor to the first line of the window's text editing buffer. LAST LINE ALT CURSOR --------- DOWN ---------- Move the cursor to the last line of the window's text editing buffer. BEG OF LINE ALT CURSOR ----------- LEFT ---------- Move the cursor to the beginning of a line. END OF LINE ALT CURSOR ----------- RIGHT ---------- Move the cursor to the end of a line. MARK SPOT RIGHT AMIGA , --------- ------------- Mark a spot. The line/column position of the cursor is remembered so that it can be returned to later using the GOTO SPOT command. GOTO SPOT RIGHT AMIGA . --------- ------------- Move cursor to a marked spot. SWAP SPOT RIGHT AMIGA / --------- ------------- Swaps a marked spot with the current cursor position, moving the cursor to a previously marked spot. GOTO LINE... RIGHT AMIGA G ------------ ------------- A requester is presented allowing the user to enter a line number. If the requester is satisfied with user input, the cursor is moved to the line number entered by the user. ===================================================================== TOOLS ===================================================================== COMMAND MODE ESC ------------ --- Opens the command mode window. See the command mode documentation for details on the commands available from this mode. Press the RETURN key without entering a command to close this window. NEW CLI ------- Opens a new CLI window. SEARCH & REPLACE ---------------- SEARCH... RIGHT AMIGA S --------- ------------- Brings up a requester allowing the user to enter a string to search for. If the search string is found, the cursor is moved to the first letter of the matching string. Note the two gadgets which allow you to select forward/backwards search mode as well as case/non-case sensitive search mode. See the appendix for more details on QED's requesters. REPLACE... RIGHT AMIGA R ---------- ------------- Prompted search, and replace mode. Like the SEARCH command above, but also allows you to enter a replace string. If the search string is found, you are prompted to respond with one of these keys: (Y)es - Yes, replace the string, and search for another match. (N)o - No, do not replace the string, and search for another match. (O)ne - Yes, replace the string, and quit. (Q)uit - Quit searching. (A)ll - Yes, replace all occurrences of the search string. The range of text affected depends on the current search modes, and block/column mark modes. REPLACE ALL... RIGHT AMIGA Z -------------- ------------- Non-prompted search, and replace mode. Like the REPLACE command above, but a search is not made for the first matching string. This command acts as if you had pre-selected (A)ll. As a result, all matching text forward/backwards of the cursor position, or all text in a marked block/column will be replaced with the replace string. HUNT RIGHT AMIGA H ---- ------------- Searches for the last search string entered in the search, or search & replace requesters. The search mode is the same as entered in the requester(s). WINDOW TOOLS ------------ TAB SIZE... RIGHT AMIGA T ----------- ------------- Brings up a requester allowing you to enter a new tab size for this window. This is the tab size which is used when entering hard, or soft tabs. The default value is eight (8). MARGINS... RIGHT AMIGA M ---------- ------------- Brings up a requester allowing you to enter new left, and right margin valus for this window. The margins are used when wrapping words/characters; when formatting text; when margin locking is on; and when using the text justifier. Default values are left margin of one (1), and right margin of 75. SCROLL... --------- Brings up a requester allowing you to enter a new horizontal scroll value for this window. The default value is eight (8). Larger values result in cruder, but faster horizontal scrolling. You can enter any value safely as horizontal scrolling rate is automatically limited by the maximum number of columns visible in the window. CYCLE BORDERS RIGHT AMIGA 0 ------------- ------------- Cycles between the 4 preset color combinations used to render window borders, and menus. This feature has less affect under version 2.0 of the operating system as window border colors are fixed. The 4 preset combinations have been selected to be visible on a 2 color screen. CYCLE COLORS RIGHT AMIGA - ------------ ------------- Cycles between the 4 preset pen/paper color combinations used to render text. The 4 preset combinations have been selected to be visible on a 2 color screen. SHOW LINEFEEDS RIGHT AMIGA = -------------- ------------- Toggle visible linefeeds on/off. The actual character used to represent visible linefeeds can be changed from the command mode. SHOW TABS RIGHT AMIGA \ --------- ------------- Toggle visible hard tabs on/off. The actual character used to represent visible tabs can be changed from the command mode. PROP GADGET ----------- Toggle the proportional slider gadget on/off. When turned off, scrolling of text will likely be somewhat faster. NEXT RIGHT AMIGA ; ---- ------------- Brings the next text editing window to front, and active. This command only works for windows opened with the NEW command. QED maintains a circular list of all windows opened with the NEW command. The NEXT, and PREVIOUS command allow you to cycle through these without having to use the mouse. PREVIOUS RIGHT AMIGA ' -------- ------------- Brings the previous text editing window to front, and active. This command only works for windows opened with the NEW command. AREXX MACROS ------------ RECORD... CTRL 7 --------- ------ Turn on the macro recorder. See the macro documentation for more details on using the macro recorder. STOP CTRL 8 ---- ------ Stop recording. See the macro documentation for more details. PLAY... CTRL 9 ------- ------ Replay an ARexx macro. See the macro documentation for more details. PAUSE CTRL 0 ----- ------ Pauses the macro recorder. See the macro documentation for more details. RECORD OPTIONS MENU ------------------- Record settings in the "Options" menu strip. See the macro documentation for more details. RECORD ALL SETTINGS ------------------- Record all settings. See the macro documentation for more details. RECORD KEY DEFINITIONS ---------------------- Record custom key definitions. See the macro documentation for more details. RECORD ALL ABOVE ---------------- Record all settings, and key definitions. See the macro documentation for more details. INDENT LINE/BLOCK ----------------- LEFT RIGHT AMIGA [ ---- ------------- Indent line, or a marked range of lines to the previous tab position. Each line is forced to start on a tab stop. RIGHT RIGHT AMIGA ] ----- ------------- Indent line, or a marked range of lines to the next tab position. Each line is forced to start on a tab stop. FORMAT PARAGRAPH ---------------- LEFT CTRL , ---- ------ Format a paragraph, left justified. A paragraph is text terminated by two end-of-line characters, or an end-of-file. All text in the paragraph is word-wrapped (if possible) to fit within the left, and right margins. In actual use, the left, center, and right formatting tools are smart enough to recognize that an end-of-line character followed by whitespace, and another end-of-line character (or end-of-file) means end-of-paragraph. Typically you will want to turn word-wrap on, and possibly margin locking on when entering text within left, and right margins. In order to use this command, place the cursor on the first line of the paragraph to be formatted. This command will format all text forwards of the cursor position including the line on which the cursor is placed. Any of the formatting tools may not be able to word-wrap a line if the line is too long to format. For example, a string of 40 characters without any spaces, or tabs cannot be wrapped to fit within a left margin of 10, and a right margin of 30. This is because the maximum line length in this example would be 20. CENTER CTRL. ------ ------ Format a paragraph, center justified. This command is similar to the FORMAT LEFT command, but the text is centered to fit within the left, and right margins if possible. RIGHT CTRL / ----- ------ Format a pargraph, right justified. This command is similar to the FORMAT LEFT command, but the text is right justified to fit up against the right margin if possible. The previous three (3) formatting tools will strip leading white space from a paragraph, replacing the white space with enough spaces to justify the text. Trailing white space on a line is not stripped. SIMPLE RIGHT AMIGA F ------ ------------- Format a paragraph, or a marked block of text to fit within the right margin. The simple formatter is fast, and does not require any temporary buffer space, however it only works with the right margin (left margin is ignored). The simple formatter works by replacing end-of-line characters with spaces, or by replacing spaces/tabs with end-of-line characters as needed to format the text to fit within the right margin. You can format multiple paragraphs with the simple formatter by block marking multiple paragraphs. You can also format portions of paragraphs in this manner. If you just want to format a paragraph of text, place the cursor on the first line of the paragraph you want formatted, and select this command. JUSTIFY PARAGRAPH ----------------- LEFT CTRL 3 ---- ------ Justify paragraph, flush with left margin. This is an example paragraph which has been left justified. Margin settings are left margin 6, and right margin 40. CENTER CTRL 4 ------ ------ Justify paragraph, center between left, and right margins. Note that justification may not be possible for any lines which are longer than the difference between the right, and left margins. This is an example paragraph which has been center justified. Margin settings are left margin 6, and right margin 40. RIGHT CTRL 5 ----- ------ Justify paragraph, flush with right margin. Note that justification may not be possible for any lines which are longer than the right hand margin. This is an example paragraph which has been right justified. Margin settings are left margin 6, and right margin 40. PARAGRAPH --------- BEGINNING ALT , --------- ----- Move cursor to beginning of paragraph. END ALT . --- ----- Move cursor to end of paragraph. SENTENCE -------- BEGINNING ALT - --------- ----- Move cursor to beginning of sentence. END ALT = --- ----- Move cursor to end of sentence FIND [{()}] CTRL = ----------- ------ This function is used to find matching brackets, braces, or parenthesis. This function has primarily been included for "C" programmers, and the search logic used has been based upon "C" language pre-processors. In order to use this feature, place the cursor on an opening, or closing brace, bracket, or parenthesis. This command will then search for the opposing symbol. This command will first do a complete search for C style comments, single quote count, and double quote count up to the cursor position. If you are within a comment, or quotes, the command will return an error message indicating such. Then this command will search for the opposing symbol. Nested braces, brackets, parenthesis, comments, and quotes are allowed, but must be evenly matched, and have a postive count. Conditions such as this will return an error message: ( ][ ) /* the parenthesis are balanced, but the braces are negatively balanced */ Characters following a backslash, outside of comments, and within single quotes are ignored (e.g., '\'' - the second single quote is ignored). ***NOTE*** Conditional compilation statements may fool this tool. This depends on if your conditional statements use mismatched symbols that would be evaluated by your "C" compiler during compilation. SWAP CASE CTRL 1 --------- ------ Swaps the case of the character under the cursor, and advances the cursor one position. You can also swap the case of all characters in a marked block, or column. In the later case, the cursor position is not incremented. ===================================================================== OPTIONS ===================================================================== OVERSTRIKE RIGHT AMIGA 1 ---------- ------------- Toggles overstrike mode on, and off. Note that end-of-line characters cannot be overstriked, or overstrike another character. This is in keeping with the line oriented nature of QED. WORD WRAP RIGHT AMIGA 2 --------- ------------- Toggles word-wrap mode on, and off. Note that word-wrap mode is affected by left, and right margin settings. When text is entered past the right margin, QED searches backwards for a place to wrap the line. If found, the place is replaced with a linefeed, and enough spaces are inserted in the file to force the wrapped portion of the line to be flush with the left margin setting. If a line of text is entered without spaces which cannot be wrapped, it either won't be, or will be character wrapped if margin locking is turned on. Note that this is a simple word-wrap feature, and should not be confused the kind of real-time word-wrapping that many word-processors do. MARGIN LOCK RIGHT AMIGA 3 ----------- ------------- Toggles margin locking on, and off. Margin locking is useful when entering text within left, and right margins. When turned on, the cursor is forced to stay within the left, and right margins. In addition, some editing keys are affected such as the cursor left/right keys, and the backspace key. AUTO INDENT RIGHT AMIGA 4 ----------- ------------- Toggle auto indent mode on, and off. Auto indent mode is generally used by programmers working with block structured languages. Auto-indent mode affects the RETURN, and ENTER keys (unless of course these keys are redefined). For example: This is a line of text. |_____________________Cursor position. If the example line above was split by pressing the RETURN key, the result would look like this: This is a line of text. |__________________________Cursor position. Not also that leading white space (tabs, or spaces in any combination) will be duplicated on the next line when auto-indent mode is turned on, and a line is split, or inserted. BLOCK = LINES RIGHT AMIGA 5 ------------- ------------- Toggle block line mode on, and off. When this mode is on, you can only mark whole lines of text. When this mode is off, you can mark from any row/column position to any row/column position. MARK RETAIN RIGHT AMIGA 6 ----------- ------------- Toggle mark retention mode on, and off. This mode is useful when you want to perform multiple operations on a marked block of text. For example, you could mark a block of text; format the block; search & replace in block; and save the block without having to remark the block after each operation. When this mode is off, mark block mode would be automatically turned off after each of these operations. FREE CURSOR RIGHT AMIGA 7 ----------- ------------- Toggle free cursor mode on, and off. When this mode is on, the cursor can be moved past the end of a line, and spaces are automatically inserted as needed when text is entered. When this mode is off, the cursor cannot be positioned past the end of a line. INSERT TABS RIGHT AMIGA 8 ----------- ------------- Toggle tab insertion on, and off. When this mode is on, tabs are inserted at the cursor position. Tabs can be inserted as hard tabs (binary 9), or soft tabs (enough spaces to move the cursor to the next tab position). When this mode off, the cursor is simply moved to the next tab position. Spaces are only inserted if necessary (e.g., when free cursor mode is off, and tabbing past the end of a line). TAB = SPACES RIGHT AMIGA 9 ------------ ------------- Toggle soft tabs on, and off. When this mode is on, tabs are inserted as enough spaces to move the cursor to the next tab position. When this mode is off, hard tabs are inserted (binary 9). Note that the next tab position is calculated based on the window's tab size setting. APPEND MODE ----------- When this mode is on, all writes to files are done in append mode (tacked on to the end of existing files, else a new file is created). BACKUP FILES ------------ When this mode is on, QED first to checks to see if the file exists before writing to a file. If so, it renames the existing file with an extension of ".bkp". Renaming the file has been choosen by the author over copying the file for reasons of speed, and safety. However note that because the file is renamed, you cannot both backup files, and use the append mode. CREATE ICONS ------------ Creates .info files whenever QED writes a file. By default, this option is turned off if QED is started from the CLI, and turned on if started from the Workbench. Note that QED uses a smart technique when creating the icon's default tool. See the command_mode documentation for more details on how QED creates the default tool string, and how to override this feature with a default tool string of your own. DETAB PRINT/SAVE ---------------- Detabs text written to a file, or printed. Hard tabs are converted to enough spaces to represent the hard tab. The actual number of spaces written is dependent on the tab size setting for the window. ===================================================================== F-Keys ===================================================================== This menu is defineable by the user from the command mode. You can assign a string of descriptive text, and a command string of one, or more commands to be executed to each of the ten (10) F-Keys menu items.